package drds.global_transaction.api.in_bound_handler;

import drds.global_transaction.api.api.RpcContext;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.branch_transaction_register.BranchTransactionRegisterRequestMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.branch_transaction_register.BranchTransactionRegisterResponseMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.branch_transaction_status_report.BranchTransactionStatusReportRequestMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.branch_transaction_status_report.BranchTransactionStatusReportResponseMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.global_transaction_begin.GlobalTransactionBeginRequestMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.global_transaction_begin.GlobalTransactionBeginResponseMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.global_transaction_end_status_report.GlobalTransactionStatusReportRequestMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.global_transaction_end_status_report.GlobalTransactionStatusReportResponseMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.global_transaction_end_status_report.global_transaction_commit_status_report.GlobalTransactionCommitRequestMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.global_transaction_end_status_report.global_transaction_commit_status_report.GlobalTransactionCommitResponseMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.global_transaction_end_status_report.global_transaction_rollback_status_report.GlobalTransactionRollbackRequestMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.global_transaction_end_status_report.global_transaction_rollback_status_report.GlobalTransactionRollbackResponseMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.global_transaction_lock_record_ids_check.GlobalTransactionLockRecordIdsCheckRequestMessage;
import drds.global_transaction.api.message_codec.request_and_response.transaction.global_transaction.global_transaction_lock_record_ids_check.GlobalTransactionLockRecordIdsCheckResponseMessage;

public interface TransactionCoordinatorInboundHandler
{

	//
	BranchTransactionRegisterResponseMessage handle(RpcContext rpcContext, BranchTransactionRegisterRequestMessage branchTransactionRegisterRequestMessage);

	BranchTransactionStatusReportResponseMessage handle(RpcContext rpcContext, BranchTransactionStatusReportRequestMessage branchTransactionStatusReportRequestMessage);

	GlobalTransactionBeginResponseMessage handle(RpcContext rpcContext, GlobalTransactionBeginRequestMessage globalTransactionBeginRequestMessage);

	//
	GlobalTransactionCommitResponseMessage handle(RpcContext rpcContext, GlobalTransactionCommitRequestMessage globalTransactionCommitRequestMessage);

	GlobalTransactionLockRecordIdsCheckResponseMessage handle(RpcContext rpcContext, GlobalTransactionLockRecordIdsCheckRequestMessage globalTransactionLockQueryRequest);

	GlobalTransactionRollbackResponseMessage handle(RpcContext rpcContext, GlobalTransactionRollbackRequestMessage globalTransactionRollbackRequestMessage);
	//

	GlobalTransactionStatusReportResponseMessage handle(RpcContext rpcContext, GlobalTransactionStatusReportRequestMessage globalTransactionStatusRequestMessage);

}
